#ifndef BULLET_H
#define BULLET_H
#include <iostream>
#include <stdlib.h>

#include <vector>
#include <math.h>
#include "Minion.h"

#include "timer.h"

#define GROUND 0

using namespace std;

//void resetPosition(int);


class Bullet
{
    public:
        Bullet();
        void draw();
        void update();
        bool TestFire(std::vector<Minion>&);
        bool TestFire(Position);
        bool TestAfterFire(std::vector<Minion>&);
        bool Fire(std::vector<Minion>&, int);
        bool CheckTimerDelay();
        bool Fire(Position);
        float getDistance(float,float,float,float);
        void setInitialPosition(Position);
        void hitEffect(std::vector<Minion>&, int );
        double GetRange();
        void SetRange(double);
        void SetBulletDamage(double);
        void setPos(Position);
        Position getPos();
        Position InitialPos;
               float Zpos;
     timer Timer;
        virtual ~Bullet();
        int minionIndex;
        int deadMinionIndex;
    protected:
          float height,width,depth;

        Position Pos;
        unsigned long delay;
       float stepSize; //Higher value is slower bullet
       double bulletDamage;
       int lastHit;
       float colorR,colorG,colorB;
        float range;

    private:

};

#endif // BULLET_H
